Linux embarcado

Objetivo

Este treinamento visa capacitar o participante a desenvolver e customizar sistemas com Linux embarcado, através de uma abordagem prática e um conteúdo amplo.


Conteúdo programático

  • Introdução: histórico do software livre e do sistema operacional GNU/Linux, principais características do Linux, mitos e verdades sobre o uso de produtos com Linux embarcado, componentes de um sistema com Linux embarcado, hardware para Linux embarcado, características de um toolchain, responsabilidades e características do bootloader, introdução ao kernel Linux, rootfs e sistemas de arquivo, sistemas de build.
  • Toolchain: definição e características, tipos de toolchain, componentes básicos de um toolchain baseado no GNU (gcc, binutils, etc), instalando e utilizando um toolchain pronto, compilando seu próprio toolchain com o crosstool-ng.
  • Bootloader: características e responsabilidades de um bootloader, processo de boot em x86, processo de boot em ARM, bootloaders populares em Linux embarcado, introdução ao U-Boot, compilando e configurando o U-Boot.
  • Kernel: visão geral do kernel Linux, componentes e arquitetura básica, gerenciamento de processos e escalonamento, gerenciamento de memória e MMU, interface com o hardware e gerenciamento de I/O, código-fonte do kernel, processo de desenvolvimento, configurando e compilando o kernel, device tree, linha de comandos do kernel.
  • Rootfs: introdução a sistemas de arquivo, pontos de montagem, o sistema de arquivo root e mecanismos de montagem do rootfs, organização do rootfs e principais diretórios de um sistema Linux, arquivos de dispositivo, sistemas de arquivo virtual proc e sysfs, processo de boot e scripts de inicialização, configurando e compilando o BusyBox.
  • Módulos do kernel: kernel monolítico e microkernel, características e vantagens de módulos do kernel, compilando e instalando módulos, dependências de módulos, carregando e descarregando módulos.
  • Sistemas de arquivo: tipos de dispositivos de armazenamento, sistemas de arquivo para dispositivos de bloco, journaling, sistemas de arquivo para memórias flash, cuidados com memórias flash, sistemas de arquivo somente-leitura, sistemas de arquivo voláteis.
  • Sistemas de build: usando distribuições prontas, construindo distribuições customizadas, sistemas de build (buildsystem), Yocto Project e Buildroot, configurando e compilando o Buildroot.
  • Desenvolvimento de aplicações: escolhendo componentes de software, licenças de software, mecanismos de compilação de software, compilação cruzada com as ferramentas make e Autotools.
  • Desenvolvimento de aplicações gráficas: a camada gráfica do Linux, subsistemas DRM e framebuffer, conceito de servidor gráfico, X11 e Wayland, conceitos de toolkits gráficos, SDL, GTK, Flutter, Qt, aplicações Web.
  • Depuração de aplicações: debugging em Linux embarcado, depuração remota com o GDB, análise de core dump, análise do uso de memória com o Valgrind, rastreando aplicações com o strace e o ltrace.
  • Ferramentas de desenvolvimento de aplicações: linguagens de programação, ferramentas de controle de versão, ambientes de desenvolvimento integrado (IDE).
  • Considerações finais: links e recursos adicionais, recomendações de livros, dúvidas e comentários finais, encerramento.

Para mais detalhes sobre o conteúdo, você pode consultar a agenda e os slides do treinamento.


Informações adicionais

Estudantes, engenheiros, desenvolvedores e líderes de equipes de desenvolvimento de software para sistemas embarcados.

Os participantes devem estar familiarizados com a interface de linha de comandos de sistemas GNU/Linux e ter conhecimentos intermediários em linguagem C.

O material de estudo é composto pelos slides das apresentações, o livro de atividades e exercícios, os guias de referência e documentos de estudo adicionais. Todo o material será fornecido de forma eletrônica no início do treinamento.

Os exercícios do treinamento são realizados no módulo Colibri i.MX6 da Toradex (ARM Cortex-A9), com a placa-base Aster e uma placa de expansão com diversos periféricos, incluindo leds, botões, trimpot, buzzer, UART, sensor de temperatura, expansor de GPIO, display de 7 segmentos e acelerômetro. O kit de desenvolvimento é emprestado aos alunos para a execução das atividades práticas. Se necessário, e conforme a necessidade da empresa contratante, o treinamento pode ser realizado em uma outra plataforma de desenvolvimento.

O treinamento pode ser apresentado nos seguintes idiomas: Português brasileiro e Inglês.

Se você planeja capacitar a sua equipe, considere um treinamento na sua empresa. Nos treinamentos in-company, a empresa contratante é responsável por fornecer os recursos necessários para a realização do treinamento, incluindo sala, projetor e máquinas de desenvolvimento para os alunos. Esse modelo traz grande economia para a empresa, já que o custo do transporte e estadia de vários funcionários é reduzido apenas ao do instrutor. Caso a empresa contratante tenha alguma necessidade específica, podemos estudar a criação de um conteúdo programático especial, como preparar o treinamento para uma plataforma de hardware específica ou desenvolver algum conteúdo adicional. Não hesite em entrar em contato por e-mail ou pela página de contato .

Os treinamentos em turmas abertas são realizados em um ambiente agradável, com um laboratório devidamente equipado e acesso à Internet. As aulas são normalmente ministradas em período integral, com uma parada para o almoço e um coffee-break pela manhã. Caso tenha interesse em participar de um treinamento mas não exista uma turma disponível, envie uma mensagem pela página de contato que avisamos assim que uma nova turma for aberta.

Devido à necessidade do uso de um kit de desenvolvimento para a execução das atividades práticas, no momento este treinamento não pode ser realizado de forma online.


Galeria de fotos

Algumas fotos dos treinamentos já realizados:

Depoimentos de clientes

Depoimentos de empresas e alunos que já participaram dos treinamentos da Embedded Labworks

highlight shape

A Samsung é uma empresa líder no mercado de alta tecnologia e mídias digitais

“Um dos melhores treinamentos que já recebi. O instrutor tem total domínio do conteúdo e uma excelente didática”

Adriano Saviolli, Samsung

A LG Electronics é uma gigante multinacional sul-coreana e uma das maiores companhias de eletroeletrônicos do Brasil

“Costumo ser muito crítico e faz tempo que não avalio um treinamento com notas máximas em todos os quesitos. Parabéns pelo treinamento!”

Vitor de Paula, LG Electronics

AOC International é a marca da TPV Technology Limited, uma fabricante de monitores LCD e LED para computadores e televisores

“Treinamento diferenciado e sem dúvida muito mais valioso que muitas graduações que temos hoje do assunto”

Lucas Tadeu Portela, AOC International

O Centro Tecnológico do Exército (CTEx) é uma organização militar subordinada ao departamento de ciência e tecnologia do governo brasileiro

“Didático e dinâmico, o treinamento atendeu plenamente a todos os objetivos propostos, além de motivar o aprofundamento do conhecimento em Linux. Recomendo!”

José Antonio de Sousa Fernandes, CTEx

O Inatel (Instituto Nacional de Telecomunicações) é um centro de excelência em ensino e pesquisa na área de engenharia

“Treinamento de alta qualidade, com muito conteúdo útil e altamente estruturado”

Luis Gustavo, Inatel

A Intelbrás é uma empresa 100% brasileira e que atua nas áreas de segurança, telecom e redes, sendo líder em vários segmentos nos quais atua

“Um excelente profissional aplicando um excelente treinamento prático e com rico material de apoio. Obrigado pela ampliação de conhecimentos!”

Paulo Morgado, Intelbrás

Ainda tem dúvidas?

Envie um e-mail para info@e-labworks.com ou deixe uma mensagem preenchendo o formulário abaixo:

Newsletter

Inscreva-se na newsletter da Embedded Labworks para receber notícias sobre treinamentos, serviços e novidades na área de sistemas embarcados.

highlight shape